library(flexdashboard)
###
library(ggplot2)
library(plotly)
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     

Attaching package: ‘plotly’

The following object is masked from ‘package:ggplot2’:

    last_plot

The following object is masked from ‘package:stats’:

    filter

The following object is masked from ‘package:graphics’:

    layout
library(plyr)

Attaching package: ‘plyr’

The following objects are masked from ‘package:plotly’:

    arrange, mutate, rename, summarise
library(sf)
Linking to GEOS 3.9.1, GDAL 3.4.0, PROJ 8.1.1; sf_use_s2() is TRUE

Bar chart

Get the data
myWeb1="https://raw.githubusercontent.com/tianyl27/543_coursework_1/main/"

LifeExp_bar=readRDS(file=url(paste0(myWeb1,"plot1.rds")))
Plot
ggplotly(LifeExp_bar)
#ANZ: Australia and New Zealand

chart

Get the data
myWeb2="https://raw.githubusercontent.com/tianyl27/543_coursework_2/main/"
CovidDeath=readRDS(file=url(paste0(myWeb2,"CovidDeath.rds")))
Plot
ggplotly(CovidDeath)
No summary function supplied, defaulting to `mean_se()`
No summary function supplied, defaulting to `mean_se()`
GiniAge=readRDS(file=url(paste0(myWeb2,"GiniAndAge.rds")))
# ggplotly(GiniAge)
myWeb3="https://raw.githubusercontent.com/tianyl27/543_coursework_3/main/"
CountryMap=readRDS(file=url(paste0(myWeb3,"CountryMap.rds")))
ggplotly(CountryMap)
linkMap="https://github.com/EvansDataScience/VAforPM_Spatial/raw/main/worldMap.geojson" 

library(sf)
mapWorld=read_sf(linkMap)
base=ggplot(data=mapWorld) + geom_sf(fill='grey90',
                                     color=NA) + theme_classic()
WHRData2021
Map2021=readRDS(file=url(paste0(myWeb3,"mapWorldVars.rds")))
# leaflet
TitleText = "Country Performance in COVID epidemic"
CaptionText = "Source: https://worldhappiness.report/ed/2021/"
theLegTitle="World_Performance\n(grey is missing)"

clusterMap= base + geom_sf(data=Map2021,
                       aes(fill=cluster,text=NAME),
                       color=NA)
Warning: Ignoring unknown aesthetics: text
clusterMap = clusterMap+ scale_fill_brewer(palette ='BuGn',
                              direction = -1,
                              name=theLegTitle)+ labs(title=TitleText,
                                                      caption=CaptionText) +
  theme(plot.title = element_text(hjust = 1), 
        plot.caption = element_text(hjust = 0),
        axis.title.x = element_blank())
# palette ='BuGn'
# Next: change the color
# How to get rid of the axis

clusterMap%>%ggplotly()
library(leaflet)
library(rgdal)


# world <- rgdal::readOGR("https://github.com/EvansDataScience/VAforPM_Dashboard/raw/main/worldMap.geojson") 
m <-leaflet(Map2021) %>%addTiles()
factpal <- colorFactor(topo.colors(5), Map2021$cluster)

leaflet(Map2021) %>%addTiles() %>%
  addPolygons(fillColor = ~factpal(cluster),
              weight = 2,
              opacity = 1,
              color = "white",
              dashArray = "3",
              fillOpacity = 0.7,
              label = ~paste(NAME,": ", cluster),
              highlightOptions = highlightOptions(
                weight = 5,
                color = "#666",
                dashArray = "",
                fillOpacity = 0.7,
                bringToFront = TRUE)
              ) %>%
  addLegend("bottomright", pal = factpal, values = ~cluster,
    title = "Perfomance\n(grey is missing)",
    labFormat = labelFormat(prefix = ""),
    opacity = 1
  )
NA
NA
NA
LS0tCnRpdGxlOiAiNTQzIERhc2hib2FyZCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCmBgYHtyfQpsaWJyYXJ5KGZsZXhkYXNoYm9hcmQpCiMjIwpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkocGxvdGx5KQpsaWJyYXJ5KHBseXIpCmxpYnJhcnkoc2YpCgpgYGAKIyMjIyBCYXIgY2hhcnQgIAoKIyMjIyMgR2V0IHRoZSBkYXRhICAKCmBgYHtyfQpteVdlYjE9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90aWFueWwyNy81NDNfY291cnNld29ya18xL21haW4vIgoKTGlmZUV4cF9iYXI9cmVhZFJEUyhmaWxlPXVybChwYXN0ZTAobXlXZWIxLCJwbG90MS5yZHMiKSkpCgpgYGAKCiMjIyMjIFBsb3QgIApgYGB7cn0KZ2dwbG90bHkoTGlmZUV4cF9iYXIpCiNBTlo6IEF1c3RyYWxpYSBhbmQgTmV3IFplYWxhbmQKYGBgCgoKIyMjIyAgY2hhcnQgIAoKIyMjIyMgR2V0IHRoZSBkYXRhICAKCgpgYGB7cn0KbXlXZWIyPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdGlhbnlsMjcvNTQzX2NvdXJzZXdvcmtfMi9tYWluLyIKQ292aWREZWF0aD1yZWFkUkRTKGZpbGU9dXJsKHBhc3RlMChteVdlYjIsIkNvdmlkRGVhdGgucmRzIikpKQoKYGBgCgojIyMjIyBQbG90ICAKCmBgYHtyfQpnZ3Bsb3RseShDb3ZpZERlYXRoKQpgYGAKYGBge3J9CkdpbmlBZ2U9cmVhZFJEUyhmaWxlPXVybChwYXN0ZTAobXlXZWIyLCJHaW5pQW5kQWdlLnJkcyIpKSkKIyBnZ3Bsb3RseShHaW5pQWdlKQpgYGAKCgoKYGBge3J9Cm15V2ViMz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RpYW55bDI3LzU0M19jb3Vyc2V3b3JrXzMvbWFpbi8iCkNvdW50cnlNYXA9cmVhZFJEUyhmaWxlPXVybChwYXN0ZTAobXlXZWIzLCJDb3VudHJ5TWFwLnJkcyIpKSkKZ2dwbG90bHkoQ291bnRyeU1hcCkKYGBgCgpgYGB7cn0KbGlua01hcD0iaHR0cHM6Ly9naXRodWIuY29tL0V2YW5zRGF0YVNjaWVuY2UvVkFmb3JQTV9TcGF0aWFsL3Jhdy9tYWluL3dvcmxkTWFwLmdlb2pzb24iIAoKbGlicmFyeShzZikKbWFwV29ybGQ9cmVhZF9zZihsaW5rTWFwKQpiYXNlPWdncGxvdChkYXRhPW1hcFdvcmxkKSArIGdlb21fc2YoZmlsbD0nZ3JleTkwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPU5BKSArIHRoZW1lX2NsYXNzaWMoKQoKYGBgCgpgYGB7cn0KV0hSRGF0YTIwMjEKTWFwMjAyMT1yZWFkUkRTKGZpbGU9dXJsKHBhc3RlMChteVdlYjMsIm1hcFdvcmxkVmFycy5yZHMiKSkpCiMgbGVhZmxldApgYGAKCmBgYHtyfQpUaXRsZVRleHQgPSAiQ291bnRyeSBQZXJmb3JtYW5jZSBpbiBDT1ZJRCBlcGlkZW1pYyIKQ2FwdGlvblRleHQgPSAiU291cmNlOiBodHRwczovL3dvcmxkaGFwcGluZXNzLnJlcG9ydC9lZC8yMDIxLyIKdGhlTGVnVGl0bGU9IldvcmxkX1BlcmZvcm1hbmNlXG4oZ3JleSBpcyBtaXNzaW5nKSIKCmNsdXN0ZXJNYXA9IGJhc2UgKyBnZW9tX3NmKGRhdGE9TWFwMjAyMSwKICAgICAgICAgICAgICAgICAgICAgICBhZXMoZmlsbD1jbHVzdGVyLHRleHQ9TkFNRSksCiAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9TkEpCgpjbHVzdGVyTWFwID0gY2x1c3Rlck1hcCsgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9J0J1R24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT10aGVMZWdUaXRsZSkrIGxhYnModGl0bGU9VGl0bGVUZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPUNhcHRpb25UZXh0KSArCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDEpLCAKICAgICAgICBwbG90LmNhcHRpb24gPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwKSwKICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCkpCiMgcGFsZXR0ZSA9J0J1R24nCiMgTmV4dDogY2hhbmdlIHRoZSBjb2xvcgojIEhvdyB0byBnZXQgcmlkIG9mIHRoZSBheGlzCgpjbHVzdGVyTWFwJT4lZ2dwbG90bHkoKQpgYGAKYGBge3J9CmxpYnJhcnkobGVhZmxldCkKbGlicmFyeShyZ2RhbCkKCgojIHdvcmxkIDwtIHJnZGFsOjpyZWFkT0dSKCJodHRwczovL2dpdGh1Yi5jb20vRXZhbnNEYXRhU2NpZW5jZS9WQWZvclBNX0Rhc2hib2FyZC9yYXcvbWFpbi93b3JsZE1hcC5nZW9qc29uIikgCm0gPC1sZWFmbGV0KE1hcDIwMjEpICU+JWFkZFRpbGVzKCkKZmFjdHBhbCA8LSBjb2xvckZhY3Rvcih0b3BvLmNvbG9ycyg1KSwgTWFwMjAyMSRjbHVzdGVyKQoKbGVhZmxldChNYXAyMDIxKSAlPiVhZGRUaWxlcygpICU+JQogIGFkZFBvbHlnb25zKGZpbGxDb2xvciA9IH5mYWN0cGFsKGNsdXN0ZXIpLAogICAgICAgICAgICAgIHdlaWdodCA9IDIsCiAgICAgICAgICAgICAgb3BhY2l0eSA9IDEsCiAgICAgICAgICAgICAgY29sb3IgPSAid2hpdGUiLAogICAgICAgICAgICAgIGRhc2hBcnJheSA9ICIzIiwKICAgICAgICAgICAgICBmaWxsT3BhY2l0eSA9IDAuNywKICAgICAgICAgICAgICBsYWJlbCA9IH5wYXN0ZShOQU1FLCI6ICIsIGNsdXN0ZXIpLAogICAgICAgICAgICAgIGhpZ2hsaWdodE9wdGlvbnMgPSBoaWdobGlnaHRPcHRpb25zKAogICAgICAgICAgICAgICAgd2VpZ2h0ID0gNSwKICAgICAgICAgICAgICAgIGNvbG9yID0gIiM2NjYiLAogICAgICAgICAgICAgICAgZGFzaEFycmF5ID0gIiIsCiAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eSA9IDAuNywKICAgICAgICAgICAgICAgIGJyaW5nVG9Gcm9udCA9IFRSVUUpCiAgICAgICAgICAgICAgKSAlPiUKICBhZGRMZWdlbmQoImJvdHRvbXJpZ2h0IiwgcGFsID0gZmFjdHBhbCwgdmFsdWVzID0gfmNsdXN0ZXIsCiAgICB0aXRsZSA9ICJQZXJmb21hbmNlXG4oZ3JleSBpcyBtaXNzaW5nKSIsCiAgICBsYWJGb3JtYXQgPSBsYWJlbEZvcm1hdChwcmVmaXggPSAiIiksCiAgICBvcGFjaXR5ID0gMQogICkKCgoKYGBgCgo=